#include "IO_KEY_LED.h"
#include "esp_log.h"


#define GPIO_Pin_SET (1UL << 25|1UL<<26)

typedef unsigned char u8;
typedef unsigned int u32;


EventGroupHandle_t Key_EventGroupHandle =   NULL;

void IO_KET_LED_Init(void)
{   gpio_config_t gpio_LED;
    gpio_LED.intr_type = GPIO_INTR_DISABLE;
    gpio_LED.mode = GPIO_MODE_OUTPUT;
    gpio_LED.pin_bit_mask = GPIO_Pin_SET;
    gpio_LED.pull_down_en = 0;
    gpio_LED.pull_up_en = 0;
    gpio_config(&gpio_LED);

    gpio_config_t gpio_KEY = {
    .intr_type=GPIO_INTR_DISABLE,
    .mode=GPIO_MODE_INPUT,
    .pin_bit_mask = (1UL << 17)| (1UL << 16),
    .pull_down_en = GPIO_PULLDOWN_DISABLE,
    .pull_up_en =GPIO_PULLUP_ENABLE
    };
      gpio_config(&gpio_KEY);

  
}


void KEY_Task(void*p)
{
    static u8 KEY_L_temp = 0;//左边按键延时次数判断
    static u8 KEY_R_temp = 0;//右边按键延时次数判断
    


    while (1)
    {

        
        if(KEY_RETURN(KEY_LEFT) ==0)
        {
            KEY_L_temp++;
            if(KEY_L_temp > 3)
            {
                KEY_L_temp = 4;
                if(KEY_RETURN(KEY_LEFT) != 0)
                {
                    xEventGroupSetBits(Key_EventGroupHandle,KEY_LEFT_EVENT);
                    
                    KEY_L_temp = 0;
                }
            }
        }


      if(KEY_RETURN(KEY_RIGHT) ==0)
        {
            KEY_R_temp++;
            if(KEY_R_temp > 3)
            {
                KEY_R_temp = 4;
                if(KEY_RETURN(KEY_LEFT) != 0)
                {
                    xEventGroupSetBits(Key_EventGroupHandle,KEY_RIGHT_EVENT);
                    //ESP_LOGI("KEY", "L Succes\n"); 
                    KEY_R_temp = 0;
                }
            }
        }

        vTaskDelay(pdMS_TO_TICKS(30));

    }
    
}